System And Method For Internet Access To A Personal Television Service

ABSTRACT

A communication system and a family of methods for remote access to personal television service are disclosed. A remote personal TV service center provides centralized program guide information. A user may access the personal TV service center through a digital video recorder which is connected to the personal TV service center via telephone modem or a network server. A user may access the personal TV service center through a remote computer terminal or a personal digital assistant which is connected to a computer network. The user selects program events and programs the digital video recorder by using a graphical user interface installed in the front panel of the digital video recorder, or using a similar GUI incorporated into the Web pages presented to remote users by a Web server. The media stream stored in one digital video recorder may be transferred to another digital video recorder.

CROSS-REFERENCE TO RELATED APPLICATIONS; BENEFIT CLAIM

This application claims benefit under 35 U.S.C. §120 as a Continuationof U.S. application Ser. No. 14/155,600, filed Jan. 15, 2014; which is aContinuation of U.S. application Ser. No. 12/945,753, filed Nov. 12,2010; which is a Continuation of U.S. application Ser. No. 10/220,558,filed Aug. 29, 2002; which is the National Stage of InternationalApplication No. PCT/US01/06313, filed Feb. 27, 2001; which claims thebenefit of U.S. Provisional Application Ser. No. 60/186,551, filed onMar. 2, 2000; the entire contents of each of which are herebyincorporated by reference as if fully set forth herein. The applicant(s)hereby rescind any disclaimer of claim scope in the parentapplication(s) or the prosecution history thereof and advise the USPTOthat the claims in this application may be broader than any claim in theparent application(s).

FIELD OF THE INVENTION

The invention relates to personal television service. More particularly,the invention relates to a communication system and methods for remoteaccess to centralized personal television service via direct telephoneconnection or indirect network connection.

BACKGROUND

With the advent of videocassette recorders (VCRs), TV viewers are ableto record TV program events that are broadcasted in a given time slotand playback the recorded program content later. During the recording, aVCR changes the electrical signals of a program content into magneticsignals and stores the magnetic signals on magnetic tape. When playingback, the VCR changes magnetic signals into electrical signals and theattached TV set displays the program content of the signals on itsscreen.

With the development of digital technology, the VCRs are beingsuperseded by digital video recorders (DVRs) Like a VCR, thefunctionality of a DVR is to record broadcasted program events andplayback later. During recording, a DVR changes the electrical signalsof a program content into digital information, such as MPEG data streamsand stores the digital information in a memory device or directly storesthe pre-digitized TV signals in the memory. When playing back, the DVRchanges the digital information back to analog signals and the attachedTV set displays the program content of the signals on its screen.

To record TV program events using a VCR, a TV viewer must manuallyselect a channel and control the VCR or have somebody else to do it. Byusing a DVR, however, the TV viewer may establish a program recordingsequence by programming the DVR according to a TV program guide and havethe recording done automatically.

Although the DVR enables users to specify the recording time, channel,and duration for a plurality of events, it cannot meet the increasingneeds in defining and capturing the program events in a more intelligentway. For instance, in situations where a user cannot find a TV programguide or he is far away from his DVR and TV set, he will be unable toprogram his DVR and record the program events that he likes.

What is desired is to establish a communication system through which aTV viewer may access to a centralized TV program guide database andprogram his DVR anywhere.

SUMMARY

A communication system and methods for remote access to a centralizedpersonal television service are disclosed. According to this invention,a personal TV service center provides centralized program guideinformation. A user may access the personal TV service center through adigital video recorder which is connected to the personal TV servicecenter via telephone modem or a network server. A user may also accessthe personal TV service center through a remote computer terminal or apersonal digital assistant which is connected to the personal TV servicecenter via a computer network such as the Internet.

In case of local programming, a user selects program events by using agraphical user interface installed in the front panel of the DVR. Forremote programming, the user selects program events and programs the DVRby using a similar graphic interface which is incorporated into the Webpages presented to remote users by the personal TV service center's Webserver. To use the personal TV service more efficiently, two or moreDVRs may be connected, either by direct connection or over a networksuch as the Internet, so that recorded media stream may be transferredfrom one DVR to another.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a communication system for remoteaccess to a centralized personal television service according to theinvention;

FIG. 2 is a data flow diagram showing the operational processes of thesystem shown in FIG. 1;

FIG. 3 is a table diagram illustrating the structures of a user databaseand an event database shown in FIG. 2;

FIG. 4 is a flow chart showing a process used by a personal TV service'sWeb server to obtain remote programming directives from a user;

FIG. 5 is a pictorial representation of a graphical user interface forprogram selection;

FIG. 6 is a screen capture of a Now Showing Web page that appears in auser's web browser;

FIG. 7 is a block diagram illustrating the interactions among thepersonal TV service center, the DVR, and the external content serverover Internet; and

FIG. 8 is a screen capture of a replay bar indicating that the contentis downloading faster than playback speed.

DETAILED DESCRIPTION

In the following detailed description of the invention, some specificdetails are set forth to provide a thorough understanding of thepresently preferred embodiment of the invention. However, it will beapparent to those skilled in the art that the invention may be practicedin embodiments that do not use the specific details set forth herein.Well known methods, procedures, components, and circuitry have not beendescribed in detail.

In the following discussion, in references to the drawings like numeralsrefer to like parts throughout the several views.

A. System for Remote Access to Personal TV Service

Referring to FIG. 1, a communication system for remote access to apersonal TV service is shown, generally designated as 100. In accordancewith the present invention, a digital video recorder (hereinafter asDVR) 110 installed in a household communicates with a personal TVservice center (hereinafter as service center) 130, which providesprogram guide data, graphical resources (such as fonts, pictures, etc.),service information, and other forms of data that enable the DVR 110 tooperate independently of the service center 130 to satisfy viewerinterests. This communication uses a secure distribution architecture totransfer data between the DVR 110 and the service center 130 such thatboth the service data and the user's privacy are protected. The DVR 110receives broadcast signals from an antenna 115 or receives televisionsignals from a cable TV system.

In one embodiment of the invention, the DVR 110 generally comprises: aplurality of components that are necessary to digitize an analogtelevision signal and convert it into a digital data stream; a pluralityof components that are designed to record segments of said data stream;a plurality of storage facilities that are designed to retain segmentsof said data stream; a plurality of components that are designed toretrieve segments of said data stream, convert the said data stream intoan analog signal, and then modulate the signal onto a RF carrier,through which the signal is delivered to a standard TV set 120; and aninterface 125, through which the DVR 110 communicates with a network140.

The DVR 110 may be directly connected to the service center 130 by usingits internal telephone modem to dial into an incoming call modem bank145. The incoming call is first routed to the service center 130 foridentification verification. Upon verification, the incoming call isauthorized. The private modem bank 145 answers the call and the DVR 110is granted access to the databases in the service center 130.

Alternatively, the DVR 110 may be indirectly connected to the servicecenter 130 via the network 140. The interface 125 between the DVR 110and the network 140 may be the internal telephone modem of the DVR 110,or a dedicated network interface such as a cable modem. The computernetwork 140 can be either a private network or the Internet. The DVR 110initiates a connection to the computer network 140 by calling a localaccess telephone number for an Internet service provider (ISP). The ISPdirects the network connection request to the service center 130 foridentification verification. Upon verification, the network connectionis authorized and the DVR 110 is granted access to the databases in theservice center 130.

The service center 130 receives program schedule information 150 fromexternal sources. The program schedule information 150 forms the basisof a program guide that TV viewers can use to select TV programs to berecorded. The service center 130 communicates with the computer network140 through an interface 135.

TV viewers can use remote computer 155 or personal digital assistants160 to remotely access the program database in the service center 130 byestablishing a communication channel with the service center 130 via thecomputer network 140.

Referring to FIG. 2, the service center 130 includes a Web server 200,which collects, organizes, and provides program schedule information; aprogram database 210, which stores program schedule information; a userdatabase 220, which stores information about users and digital videorecorders; an event database 230, which stores an event list for eachuser, and a dispatch process 240, which traverses the user database andretrieves the event list from the event database. It may also include anetwork interface over which the Web server and the digital videorecorder communicate.

In the preferred embodiment, the DVR 110 includes a micro-server 250,which controls the communication between the DVR 110 and the servicecenter 130; a local program storage guide 260, which records the programguide provided by the service center 130 and is updated whenever the DVR110 accesses the service center 130; an event queue 270, which is a datastructure used to initiate recording sessions that capture selected TVprograms; a pseudo-random-number-generator (PRNG) 280, which generatesauthorization key for remote access; as well as a network interface 125,which connects the DVR 110 to the computer network 140. The event queue270 is coupled to a recording device integral to the DVR 110.

Both the remote computer 155 and the personal digital assistants (PDA)160 comprises a Web browser 290, which may be a generic Web browser thatenables the user to view Web pages.

FIG. 3 is a table diagram illustrating the structures of a user database220 and an event database 230. The user database 220 includes aplurality of user records 300. Each user record 300 comprises aplurality of fields, among which are a user identification 310, acrypto-key 320, a DVR identification 330, and an event list pointer 340.The user identification field 310 is used as a key into the userdatabase 220. The crypto-key field 320 is used to store theauthorization key received from a user who is attempting to program hisDVR 110 remotely. The DVR identification 330 is used to store thenetwork address and connection details which are needed to establish acommunication channel with the DVR 110.

In the user database 220, separate event lists 350 are maintained foreach user. The event lists 350 are stored in the event database 230.Each event list 350 includes a plurality of event records 360. Eachevent record includes a plurality of fields among which are a time field370, a channel field 380, and a duration field 390. The time field 370is used to indicate a start time for recording and is comprised of thedate and time of the program event. The channel field 380 specifieswhich channel the DVR should record. The duration field 390 is used tospecify how long the DVR should record the content for that programevent.

B. Process for Remote Access to Personal TV Service

FIG. 2, together with FIG. 1, shows various processes that collectivelyenable the functionality of the invention.

The service center 130 receives program schedule information 150 fromexternal sources on a periodic basis. Once the program scheduleinformation 150 arrives, the program database 210 is updatedaccordingly.

The DVR 110 updates its local program guide 260 on a periodic basis byreading a Web page from the Web server 200. In response to a requestfrom the DVR 110, the Web server 200 first consults the program database210 for updated program information and then dynamically creates a Webpage containing updated program schedule information.

Once the DVR 110 has updated the local program guide 260, the Web server200 presents to a TV viewer a program guide using a graphical userinterface as shown in FIG. 5. The TV viewer selects TV programs byprogram title and time slot to indicate what programs should be recordedby the DVR 110.

The TV viewer can remotely program the DVR 110 by using a Web browser290 on either a remote computer 155 or a personal digital assistant 160.In this situation, the Web browser 290 is used to access a special Website hosted by the Web server 200.

To use the remote access feature, a user must first obtain anauthorization key from the DVR 110, which is generated by thepseudo-random-number-generator (PRNG) 280. The DVR 110 presents theauthorization key to the user on a graphical user interface that ismanaged by the DVR 110. Whenever remote access is received from thedispatch process 240, the authorization key is stored locally in the DVR110.

The service center 130 executes a dispatch process 240 on a periodicbasis. The dispatch process 240 traverses the user database 220.Whenever the dispatch process 240 encounters a user who has specifiedprogram events, the dispatch process 240 retrieves the event list 350from the event database 230. The dispatch process 240 then establishes acommunication channel with the micro-server 250 that resides in the DVR110. This communication channel is designed to allow the dispatchprocess 240 to retrieve a special event-dispatch Web page from themicro-server 250. The micro-server 250 presents the event-dispatch Webpage to the dispatch process 240. The dispatch process 240 thencompletes the event-dispatch Web page and submits it back to themicro-server 250.

The micro-server 250 uses event directives found in the event-dispatchWeb page to update the event queue 270 integral to the DVR 110. Theevent queue 270 is a data structure used by the DVR 110 to initiaterecording sessions that capture TV program events.

In order to authenticate a transaction, the Web server 200 includes oneor more authorization codes for the user affiliated with the DVR 110 tobe programmed. The DVR 110 compares the authorization code against aprivate copy maintained in the DVR's non-volatile memory. Theauthorization codes are time sensitive and can be set to expire assystem security requirements dictate.

C. Process to Obtain Remote Programming Directives

FIG. 4 is a flow chart showing a process used by the Web server 200 toobtain remote programming directives from a user. The process includesthe steps of:

Step 400: The Web server 200 presents an authorization request form inthe first Web page to the user who accesses a special Web site that ismanaged by the Web server 200;

Step 410: The Web server 200 receives the authorization key that isentered by the user who responds to the authorization request and usesthe authorization key to authenticate any subsequent programmingcommands transmitted to the user's DVR 110;

Step 420: The Web server 200 stores the authorization key together witha user identification in the user database 220;

Step 430: Once the Web server 200 has stored the authorization key inthe user database 220, it writes a cookie in the non-volatile memory ofthe remote computer 155 or personal digital assistant 160;

Step 440: The Web server 200 presents a program guide to the user afterthe user is identified and authenticated;

Step 450: The Web server 200 receives the user selections and creates anevent list 350 specific to the user. The event list 350 is stored in theevent database 230.

In Step 440, the Web server 200 follows a script integral to the firstWeb site presented to the user and searches for a valid cookie on theremote computer 155 or the personal digital assistant 160. Once a validcookie is discovered, steps 400 through 430 are excluded from theprocess flow.

D. Graphical User Interface for Program Selection

FIG. 5 is a pictorial representation of an exemplary graphical userinterface (GUI) 500 for program selection. The GUI 500 is used both onthe DVR front panel and is incorporated into the Web pages presented toremote users by the Web server 200. When implemented directly in the DVR110, the GUI 500 is manipulated directly by the control process integralto the DVR 110. When the GUI 500 is presented to the remote users via acomputer network, it embodies as an active server Web page. FIG. 6 is ascreen capture of the Now Showing Web page that appears in a user's webbrowser.

The GUI 500 comprises a table 505 that contains a plurality of columns510 and a plurality of rows 515. The columns 510 correspond to the daysof the week (and a specific calendar date). The rows 515 correspond tothe hours of a given day. The columns 510 and rows 515 of the table 505are actually made up of data selection controls where the caption of thecontrol is set to indicate the title of a TV program that is scheduledin the time slot according to the position of that control in the table505. The GUI also comprises a mechanism for scrolling up 520 andscrolling down 525, a mechanism for turning forward 530 and turningbackward 535; a mechanism for selecting a specific TV program; amechanism for creating a program event list 350 which contains selectedTV programs; and a mechanism for editing said event list 350. Inaddition, it may also include a mechanism for commanding download, amechanism for indicating the download is in progress, and a mechanismfor canceling the ongoing download.

The position of the control corresponds to the day and hour of the TVprogram event. The user can toggle the selection controls that arepresented in the GUI 500. When the GUI 500 is returned to the Web server200, the identifiers of the selected controls are used in conjunctionwith the program guide 260 to create an event list 350 for the user. Theevent list 350 is then stored in the event database 230 in the case ofremote programming. For local programming of the DVR 110, the event list350 is stored directly in the event queue 270 that controls the DVRrecording sequence.

E. Internet Access to Digital Video Recorder

FIG. 7 is a block diagram of a general scheme 700 illustrating theinteractions among the service center 130, the DVR 110, and the externalcontent server 720 over the Internet, wherein a particular style of theInternet access is integrated into the DVR 110 to enable it to fetchcertain types of content over an Internet connection 140 and make themavailable for viewing in the Now Showing page as shown in FIG. 6.

A listing of the content name, i.e., the title of TV program, indicatesthat such content is being fetched on the GUI 500, and a record icon, orsome variant thereof, indicates that the download is in progress. Theviewer may pick the content (i.e., the TV program) and play it at anytime.

The download may occur at any speed, i.e., the interface 125 in FIG. 1is not dependent in any way on speed of download. FIG. 8 is a screencapture of the Web page showing a replay bar that, by growing the greenregion to match, indicates that the content is downloading faster thanplayback speed. In any case, the viewer is able to use all trick-playactions on whatever amount of content has been downloaded to that point.

The fact that the content was downloaded over the Internet is totallytransparent to the viewer, except in the context of presenting programinformation, where an indication that the content is from the Internetmay be made in various ways.

Pointers to downloaded content are stored in a local content database740 on the DPR 110 hard drive in an analogous manner to how broadcastprograms are stored, such that all forms of searching and presentationproperly display those programs and provide for their manipulation.

In channel or network oriented contexts, downloadable programs arepresented in a manner analogous to broadcast programming. These contextsmay have to be modified such that the channel or network “lineup” ispresented in a sensible manner, since time and location are irrelevantfor such programs.

The number of content items available in the Now Showing context asshown in FIG. 6 may make navigation unwieldy. Although not required forthe initial implementation, this context may be modified to makenavigation of many items simpler.

The entity providing the content from some servers may be viewed as atelevision network. Each unique server name indicates a channel. Here, a“server” is just a name on the network; it might map into just about anyphysical server anywhere in the world.

Once the content server 720 is contacted, the DVR 110 requests the mediacontent according to the program identification given. This is mapped bythe Web server 200 into a particular piece of content, which is thensent down the connection. Either end may throttle the download speed.

If the viewer requests multiple downloads, the DVR 110 may chooseseveral different ways to get the content; it may initiate multipleconnections with a maximum limitation, or queue requests, or both.

A primary focus is security of the DVR 110. Opening up a network portleads to a large number of possible security breaches, revolving aroundthe security of copyrighted content and protection of a customer'sprivate data.

A standard Linux firewall support is used to manage this protection byautomatically blocking access to all but a single, well-known port inboth directions. This single, well-known port is used by the applicationsoftware to contact the external content server 720 for downloadingmedia content. No connections to this port from the outside world isaccepted.

A Linux DHCP client in the DVR 110 shall be ported. On boot up, if anetwork interface is detected, then the DHCP client uses the well-knownport to poll for an external DHCP server 750. If no server is found,networking will be disabled. Otherwise, the DVR 110 will initialize itsnetwork parameters from the DHCP response.

The disadvantage of this Linux firewall support is that the externalDHCP server 750 is required to configure the Internet accessinformation. This raises the possibility of aliasing. To defeat attacksof this nature, all communication with the content server 720 must beboth authenticated and encrypted. The content server 720 must haveaccess to the public key of the DVR 110, and the DVR must have a copy ofthe public key of the content server 720. Using a certificate exchange,the DVR 110 and the content server 720 generate a one-time session keyfor the Blowfish protocol, and all further communication are encrypted.The public key of the content server 720 is distributed from the servicecenter 130, which has also provided appropriate program guide referencesto the content server 720.

The service center 130 accepts descriptions of the content server 720consisting of server URLs, content descriptions, contentidentifications, “channel” descriptions, “network” descriptions, etc.These data are imported into a content servers description (CSD)database 710 and sliced out as appropriate. A set of public keys foraccess to the content server 720 are also provided.

In order for the content server 720 to accept a connection from the DVR110, it must have access to the public key for a particular DVR. Thiskey distribution is performed on-the-fly. Each content server uses anauthenticated connection to the service center 130 to perform keylookup. Given a DVR serial number, the service center 130 returns itspublic key. The content server 720 may cache this public key if sodesired. The service center 130 maintains a log of all distributedpublic keys.

The service center 130 may refuse to provide the public key of aninactive DVR. Additionally, the content server 720 is required torespond to key invalidation requests from the service center 130, forinstance, if a particular DVR becomes inactive.

A media recorder 730 is a subsystem of the personal TV serviceapplication. It allows for simultaneous record and playback of thedownloading content. The recorded content is stored in the contentdatabase 740. The media recorder 730 will not be started if no permanentnetwork connection is available. There are a number of different threadswithin this subsystem.

(1) Recording Queue Thread: This thread manages the queue of networkdownload requests and implements the download policy. Initially, thismay be a simple FIFO queue maintained in the object store. A recordingqueue policy object is maintained once the download policy isimplemented.

(2) Fetch Recording Thread: This thread is responsible for managing aconnection with the content server 720. It contacts the server,implements the authentication protocol, requests the desired content,and manages its download.

As a variation on this strategy, the program object may indicatemultiple servers to be polled for the media content. The servers arepolled in order; the first to accept a request for download is used.This provides for load-balancing.

The thread periodically checkpoints its state to the object store. Thisallows restart of a download after a power failure or system error. Thethread also manages the state of database objects that are used forpresentation and navigation of the content being downloaded; forexample, it manages the state of the recording object for proper displayin the Now Showing context as shown in FIG. 6. There may be one or moresuch threads active at any point in time.

F. DVR to DVR Interactions

A mechanism for transferring media and database elements between twoDVRs is developed. Referring to FIG. 7, one example of the transfer isthat a smaller amount of disk storage in a battery-driven device isprovided in a portable DVR 760. Before going on vacation, a user maytransfer desirable media and the invisible associated service data tothe portable DVR 760 and take the portable DVR 760 along such that themedia may be used when desired. Another example of the transfer is thattwo DVRs 110 and 770 are slaved together such that two media streams areplayed with precise synchronization to achieve identical operation.

There are many ways to connect two DVRs. The simplest one is to plug theoutput of the source DVR 110 into the input of the destination DVR 770.While it is functional, this method fails to transfer information aboutthe media stream, which is essential to viewer satisfaction in managingand using the media stream.

The media stream stored in the DVR 110 consists of two pieces: the mediacontent itself, and a database object which gives descriptiveinformation about the media content. If a data transfer method is used,such as a network (e.g., IEEE 802.3) or a direct connection (e.g., IEEE1394), then both the media content and the descriptive information canbe transferred, such that the integrity of the viewer experience ispreserved.

Content owners are concerned about theft of content. A furtherrefinement of this method is to encrypt the data transfer between theDVRs 110 and 770. This can be done in a number of standard and customways. For instance, the Diffie-Hellman secure connection protocol may beused to encrypt the transfer using a one-time key.

If it is desirable to allow the transfer to only occur to certainspecified DVRs, the integrated security system may be used. The publickey of each DVR must be known to the other. When the transfer isstarted, the DVRs exchange signed, encrypted certificates based on thestored private key. If both DVRs can decrypt and verify the signature ofthe other, a one-time session key is then used to encrypt the dataduring the transfer.

Key distribution in such a case may be handled through the servicecenter 130. A viewer may contact the service center 130, and requestthat two DVRs 110 and 770 he owns be authorized for data transferbetween each other. The service center 130 sends an authorization objectcontaining each DVR's public key to the other DVR through an appropriatedownload mechanism. The service center 130 maintains a record of thisoperation for later auditing purposes, which includes identifyinginformation for each DVR. For instance, should the security system bedefeated in one DVR and the public key of the other be exposed, it ispossible to modify other DVRs such that they appear authorized to thesource DVR 110. Each DVR keeps a record of the transfers. This record isuploaded to the service center 130. Later, this information could beprocessed to look for copy protection violations, copies to unauthorizedDVRs, etc.

If the transfer is interrupted, the destination DVR 770 marks the mediastream as “partial” in the descriptive object. Later, the transfer maybe restarted. Since the design of the database system guarantees themedia stream can be uniquely identified on the destination DVR 770, thepartial stream is found, and the transfer begins from its end, thusavoiding re-transfer of media that has already been stored. Once theentire media stream is stored, the descriptive object is updated to showa complete media stream.

There is no particular real-time requirement necessary when transferringdigital data between the DVRs. The transfer may take place at whateverspeed is appropriate. For instance, it may be the case that the networkbetween the DVRs is slow, in which case the transfer duration will belonger than the playback duration of the content. Alternatively, thenetwork may be fast, in which case multiple media streams might betransferred in much less time than taken for playback of one contentitem. The viewer on the destination DVR may start viewing the mediastream as soon as the first portions are available, in parallel with theongoing download of the stream.

There is no requirement that the source or destination DVR be a completedigital video DVR. For instance, the media streams stored on a server ina cable head end may be transferred reliably to the destination DVR 770.Alternatively, the media stream stored in the source DVR 110 may betransferred to a head-end server.

Certain media distribution architectures, such as digital satellitesystems, broadcast most media content in an encrypted state. Using alocal decryption facility based on a smart-card, the media content isdecrypted only if it is viewed, thus protecting the content from theft.It is possible for the DVR to save these encrypted media streams todisk, and to initiate decryption upon playback. This method may be usedto transfer media streams between two DVRs. In order to properly complya particular set of content protection rules associated with the mediastream (such as play once, expire after one day, etc.), the DVRmaintains with the database object describing the media stream the copyprotection information associated with the media stream (includingwhether the stream is stored encrypted).

The content protection rules associated with the media stream may betransferred to the destination DVR 770 as well. For example, the DVR 110may have stored a movie from the content server 720 that will not bedecrypted until it is viewed. If the viewer wishes to have this mediastream transferred, it is simply copied into the media region of thedestination DVR 770, and the descriptive object is transferred as well.This means that the original information on the media stream isfaithfully duplicated to the destination DVR 770.

The smart-card might be pulled from the source DVR 110 and installed inthe destination DVR 770. When the media content is viewed, the viewer isproperly charged and all copy protection rules followed. The originalmedia content and descriptive information might, or might not, beremoved. For instance, in a “view-once” scheme, the originals aredestroyed, whereas in a “charge-per-view” scheme, they would not.

Using the same techniques as described above, a secure, or authenticatedand secure, connection may be established between two or more DVRs usinga network, perhaps accessed using the internal modem. This enablescontrol interactions to take place. Some examples are:

(1) Synchronized playback. A viewer may control trick-play features on aparticular media stream. Each key event is also passed to thedestination DVR 770, which automatically performs the same action. Forexample, a presenter may give a live presentation using the source DVR110 as a multimedia playback device, and an audience at a remotelocation can watch the same presentation given in the same way at thesame time. Alternatively, two viewers communicating through some othermeans, such as a telephone, may interact, while one or the othercontrols the playback on both DVRs of the same program. This allowsprecise discussion of the program of interest. The means ofcommunication may be a simple chat program overlayed on the display inwhich the participants type comments.

(2) Link passing. A viewer of the source DVR 110 may indicate that aparticular program be linked to the destination DVR 770. This results ina message sent to the destination DVR 770 which causes it to schedulerecording of that program. Alternately, the program may be unlinked aswell. The message needs to contain only the program identification,assuming both DVRs 110 and 770 are in service.

(3) Sound or graphics effects. When the viewer takes an action, such aspressing a particular key sequence, the source DVR 110 may play a soundor present a graphic. It may pass that event to the destination DVR 770which reproduces that same sound or graphic. For instance, a child mayadd sounds to a program this way, which may be replicated for his friendon a remote destination DVR 770. Clearly, such communication may bemulti-way.

It may be useful for DVRs to be able to transfer other types of data aswell. For example, consider a large home DVR 110 and a smaller portableDVR 760. Interesting data, such as software, graphical elements, programguide data, etc., might be transferred between two DVRs as well. Forinstance, the portable DVR 760 may be updated by the home DVR 110 everytime the two DVRs are connected. This update includes transferring andinstalling a software update as well. The portable DVR 760 transfers anyoperational information to the home DVR 110 whenever two DVRs areconnected, and the home DVR 110 then sends the operational informationto the service center 130 whenever the home DVR 110 accesses to theservice center 130.

The update may be done automatically. In such a case, when two DVRs areconnected, a set of pre-configured actions takes place, such as updatingprogram guide or software, and then media streams may be transferred aswell. If the destination DVR 770 is a smaller portable unit, then notall media streams would fit. In this case, the viewer may explicitlychoose which media streams to transfer. A more interesting case occursif preference information is used to choose a subset of the availablemedia of most interest to the viewer and transfer only those streams.Another case is where media streams are transferred going from newest tooldest, stopping when no more will fit, or oldest to newest, which isless interesting. Another criteria may be whether the program wasexplicitly picked or chosen based on viewer preferences. Any programinformation stored in the descriptive object for the content may be usedin the selection criteria, such as length, actors, rating, etc.

FURTHER EXAMPLES OF EMBODIMENTS

According to an embodiment, a communication system for remote access tocentralized personal TV service comprises: a personal TV service center,which provides a program guide; a plurality of digital video recorders,each coupled to a monitor; a signal input device, from which a digitalvideo recorder receives TV programs; a computer network coupled to saidpersonal TV service center and said digital video recorders; and aplurality of remote terminals coupled to said computer network; whereina digital video recorder communicates with said personal TV servicecenter periodically to get an updated program guide; wherein a securedistribution architecture is used in said communication between saiddigital video recorder and said personal TV service center such thatboth service data and a user's privacy are protected; wherein saiddigital video recorder may be programmed to record TV programs that areselected according to said program guide provided by said personal TVservice center; and wherein said digital video recorder may play backrecorded TV programs independently of said personal TV service center tosatisfy the user's interest.

In an embodiment, the personal TV service center comprises: a Web serverthat provides program schedule information; a program database thatstores program schedule information; a user database that storesinformation about users and digital video recorders; an event databasethat stores an event list for each user; a dispatch process thattraverses said user database and retrieves said event list from saidevent database; and a network interface, over which said Web server andsaid digital video recorder communicate.

In an embodiment, the user database includes a plurality of userrecords; and each of said user records comprises: a user identificationfield, which is used as an authorization key into said user database; acrypto-key field, which is used to store said authorization key receivedfrom the user who is attempting to program a digital video recorderremotely; a digital video recorder identification field, which is usedto store said computer network's address and connection details that areneeded to establish a communication channel with the user's digitalvideo recorder; and an event list pointer field; and the user databasemaintains a separate event list for each user.

In an embodiment, the event database stores all event lists; whereineach event list includes a plurality of event records; and each saidevent record comprises: a time field, which is used to indicate a starttime for recording and a date and time of a program event; a channelfield, which specifies which channel said digital video recorder shouldrecord; and a duration field, which is used to specify how long saiddigital video recorder should record the content for said program event.

In an embodiment, the personal TV service center receives programschedule information from external sources; the program scheduleinformation forms the basis of said program guide that a user can use toselect TV program events to be recorded; and the user can use saidremote terminal to remotely access said program guide in said servicepersonal TV service center by establishing a communication channel withsaid personal TV service center via said computer network.

According to an embodiment, a digital video recorder used in acommunication system for remote access to a centralized personal TVservice comprises: a plurality of components that are necessary todigitize a television analog signal and convert it into a digital datastream; a plurality of components that are designed to record segmentsof said digital data stream; a plurality of storage facilities that aredesigned to retain segments of said digital data stream; a plurality ofcomponents that are designed to retrieve segments of said digital datastream, convert said digital data stream into an analog signal, and thenmodulate said analog signal onto a RF carrier, through which said analogsignal is then delivered to a said monitor; and a network interface,over which said digital video recorder and said computer networkcommunicate.

In an embodiment, the network interface comprises a modem device, andthe digital video recorder uses said modem device to initiate aconnection to said computer network. In an embodiment, the modem deviceis a telephone modem, and the digital video recorder uses said telephonemodem to initiate a connection to said computer network. In anembodiment, the modem device is a cable modem, and the digital videorecorder uses said cable modem to initiate a connection to said computernetwork.

According to an embodiment, a digital video recorder used in acommunication system for remote access to a centralized personal TVservice comprises: a local program guide, which records the programguide provided by said personal TV service center and is updatedwhenever said digital video recorder accesses said personal TV servicecenter; a micro-server, which controls said communication between saiddigital video recorder and said personal TV service center; an eventqueue, which is a data structure used to initiate recording sessionsthat capture selected TV programs; a media recorder, which recordsselected TV programs; a pseudo-random-number-generator, which generatesauthorization key for remote access; and a network interface, whichconnects said digital video recorder to said computer network coupled tosaid personal TV service center.

In an embodiment, the communication system further comprises a privatemodem bank which is connected to the personal TV service center, and thedigital video recorder communicates with said personal TV service centerby using its internal modem device to connect said private modem bank.In an embodiment, the computer network may be either a private networkor the Internet.

In an embodiment, the remote terminal may be a personal computer or apersonal digital assistant or any other kind of Web-enabled apparatuscapable of sending and receiving information via said computer network.In an embodiment, the remote terminal comprises a Web browser thatenables a user to view Web pages.

According to an embodiment, a process for remote access to a centralizedpersonal television service comprises: receiving, by said Web server,program schedule information from external sources on a periodic basis,wherein once said program schedule information arrives, said programdatabase is updated accordingly; updating, by said digital videorecorder, said local program guide on a periodic basis, wherein said Webserver, in response to a request from said digital video recorder, firstconsults said program database for updated program information and thendynamically creates a Web page containing updated program information;and presenting, by said Web server, to a remote user a program guide byusing a graphical user interface, wherein the user selects programevents by program title and time slot to indicate what programs shouldbe recorded by said digital video recorder.

In an embodiment, the user can remotely program said digital videorecorder by using said Web browser on said remote terminal, wherein saidWeb browser is used to access a special Web site that is hosted by saidWeb server.

In an embodiment, the process further comprises the steps of: obtaining,by the user, an authorization key from said digital video recorder,wherein said authorization key is generated by saidpseudo-random-number-generator that is integral to said digital videorecorder; presenting, by said digital video recorder, said authorizationkey to the user via a graphical user interface which is managed by saiddigital video recorder; and storing said authorization key locally insaid digital video recorder whenever remote access is received from saiddispatch process residing in said personal TV service center.

In an embodiment, the process further comprises the steps of: executing,by said personal TV service center, said dispatch process on a periodicbasis, wherein said dispatch process traverses said user database;retrieving, by said dispatch process, an event list from said eventdatabase whenever said dispatch process encounters a user who hasspecified program events; establishing, by said dispatch process, acommunication channel with said micro-server residing in said digitalvideo recorder whenever said dispatch process encounters a user who hasspecified program events, wherein said communication channel is designedto allow said dispatch process to retrieve an event-dispatch Web pagefrom said micro-server residing in said digital video recorder;presenting, by said micro-server residing in said digital videorecorder, said event-dispatch Web page to said dispatch process; andcompleting, by said dispatch process, said event-dispatch Web page andsending it back to said micro-server residing in said digital videorecorder.

In an embodiment, the process further comprises the step of: using, bysaid micro-server residing in said digital video recorder, eventdirectives found in said event-dispatch Web page to update said eventqueue integral to said digital video recorder; wherein said event queueis a data structure used by said digital video recorder to initiaterecording sessions that capture TV program events.

In an embodiment, the Web server includes one or more authorizationcodes for the user who is affiliated with said digital video recorder tobe programmed, wherein said digital video recorder compares saidauthorization codes against a private copy that is maintained in saiddigital video recorder's non-volatile memory; and wherein saidauthorization codes are time sensitive and can be set to expire assystem security requirements dictate.

According to an embodiment, a process for a Web server to obtain remoteprogramming directives from a user comprises the steps of: presentingfirst Web page to the user when the user accesses said special Web site,wherein said first Web page is an authorization request form; receivingsaid authorization key entered by the user, wherein said Web server usessaid authorization key to authenticate any subsequent programmingcommands transmitted to said digital video recorder; storing saidauthorization key together with a user identification in said userdatabase; writing a cookie in said remote terminal's non-volatilememory; and providing a program guide to the user when the user isauthenticated by said Web server, wherein said Web server follows ascript which is integral to the first Web site presented to the user andsearches for a valid cookie on said remote terminal; and wherein, if avalid cookie is discovered, the steps of presenting first Web pagethrough writing a cookie are excluded from this process flow; receivingthe user's selections and creating a program event list specific to theuser; wherein said event list is stored in said event database.

According to an embodiment, a graphical user interface for programselection for interaction between a user and the personal TV servicecenter comprises: means for displaying TV program information which isorganized in time slots; means for scrolling up and down; means forscrolling forward and backward; means for selecting a specific TVprogram; means for creating an event list which contains selected TVprograms; and means for editing said event list.

In an embodiment, the means for displaying TV program information is atable, said table comprising: a plurality of columns that correspond tothe days of a week; and a plurality of rows that correspond to the hoursof a given day; wherein said columns and rows are actually made up ofdata selection controls; and wherein the caption of said data selectioncontrol is set to indicate the title of a TV program that is scheduledin the time slot according to the position of that data selectioncontrol in said table.

In an embodiment, the graphical user interface, when used on the frontpanel of a digital video recorder, is manipulated directly by a controlprocess integral to said digital video recorder. In an embodiment, theevent list is stored directly in said event queue that controls therecording sequence of said digital video recorder. In an embodiment, thegraphical user interface is embodied as an active Web page that ispresented to a remote user by a Web server. In an embodiment, the eventlist is stored in said event database that controls the recordingsequence of said digital video recorder over said network.

According to an embodiment, a digital video recorder used in acommunication system for remote access to a centralized personal TVservice comprises: means for digitizing a television analog signal andconverting it into a digital data stream; means for recording segmentsof said digital data stream; storage means for retaining segments ofsaid digital data stream; means for retrieving segments of said digitaldata stream; means for converting said digital data stream into ananalog signal; means for modulating said analog signal onto a RFcarrier, through which said analog signal is then delivered to a saidmonitor; and the Internet access means for downloading media streamsover the Internet; wherein said media streams includes content itselfand associated service data; wherein said associated service datacomprises a database object and other forms of data that enable saiddigital video recorder to operate independently of said personal TVservice center; and wherein said database object provides descriptiveinformation about said content.

In an embodiment, the storage means comprises means for storing pointersto downloaded content, by which said downloaded content is stored in amanner analogous to that the broadcast programs is stored. In anembodiment, the downloaded content is presented in a manner analogous tothat the broadcast programs is presented. In an embodiment, the digitalvideo recorder requests said content according to a given programidentification; the program identification is mapped by said Web serverinto a particular piece of content; and the digital video recorderchooses several different ways to get content for multiple downloadrequests. In an embodiment, the digital video recorder furthercomprises: means for commanding the download; means for indicating thatthe download is in progress; and means for canceling the ongoingdownload.

In an embodiment, the graphical user interface is incorporated into theWeb pages presented to a remote user by said Web server, furthercomprising: means for commanding the download; means for indicating thatthe download is in progress; and means for canceling the ongoingdownload.

According to an embodiment, a method for data security protection of apersonal TV service system over the Internet comprises: using a standardLinux firewall to keep a single port open to access a content server fordownloading content and have all other ports automatically blocked inboth directions; and using a DHCP server to configure the Internetaccess information; wherein said content server's descriptiveinformation, including server URLs, content descriptions, contentidentifications, channel descriptions, and network descriptions, isstored in a database incorporated in said personal TV service center.

In an embodiment, a Linux DHCP client in said digital video recorder isported to detect a network interface at boot up, the method furthercomprising: using, by said Linux DHCP client, a well-known port to pollfor said DHCP server, if said network interface is detected;initializing, by said digital video recorder, network parameters fromthe DHCP response, if said DHCP server is found; and disablingnetworking, if no DHCP server is found.

In an embodiment, the method further comprises: authenticating allcommunication between said content server and a digital video recorderupon validation of said digital video recorder's public key; whereinsaid digital video recorder's public key is distributed by said personalTV service center on the fly; wherein said content server has access tosaid digital video recorder's public key; and wherein said digital videorecorder has a copy of said content server's public key which isdistributed from said personal TV service center.

In an embodiment, the content server caches said digital videorecorder's public key. In an embodiment, the content server and saiddigital video recorder generate a one-time session key for a Blowfishprotocol. In an embodiment, the method further comprises: encrypting allcommunication between said content server and said digital videorecorder using said Blowfish protocol.

In an embodiment, validation of said digital video recorder's public keycomprises the sub-steps of: sending said digital video recorder's serialnumber to said personal TV service center; looking up a public key incorrespondence to said serial number in said user database; returningthis public key to said content server; comparing this public key withsaid public key stored in said content server; wherein said digitalvideo recorder's public key is validated if these two public keys match;and wherein said personal TV service center refuses to provide thepublic key if a digital video recorder is inactive. In an embodiment,the content server is required to respond to key invalidation requestsfrom said personal TV service center and update its public key recordsaccordingly.

According to an embodiment, a media recorder, which allows forsimultaneous record and playback of downloading content, comprises: arecording queue thread which manages the queue of network downloadrequests and implements the download policy; and a fetch recordingthread which manages the connection with a content server; wherein saidrecording queue thread is maintained in an object store; and whereinsaid fetch thread contacts said content server, implements anauthentication protocol, requests desired content, and manages thedownload.

In an embodiment, multiple content servers may be polled in order forthe content, and wherein the first content server that accepts a requestfor a download is used. In an embodiment, said fetch thread periodicallycheckpoints its state to said object store in order to restart thedownload if the download is interrupted. In an embodiment, said fetchthread manages the state of database objects that are used forpresentation and navigation of the content being downloaded.

According to an embodiment, a method for using personal TV service bytransferring data from a home digital video recorder to a portabledigital video recorder comprises: transferring media stream from saidhome digital video recorder to said portable digital video recorder; andoperating said portable digital video recorder anywhere; wherein saidmedia stream is stored in a disk of a battery driven device in saidportable digital video recorder; wherein said media stream comprisescontent itself and associated service data; wherein said associatedservice data comprises a database object and other forms of data thatenable said portable digital video recorder to operate independently ofsaid personal TV service center; and wherein said database objectprovides descriptive information about said content.

In an embodiment, said media stream in said portable digital videorecorder is automatically updated by said home digital video recorderwhenever these two digital video recorders are connected. In anembodiment, the software in said portable digital video recorder isautomatically updated by said home digital video recorder whenever thesetwo digital video recorders are connected. In an embodiment, theportable digital video recorder transfers any operational information tosaid home digital video recorder whenever these two digital videorecorders are connected; and the home digital video recorder transferssaid operational information to said personal TV service center wheneversaid home digital video recorder accesses said personal TV servicecenter.

According to an embodiment, a method for using personal TV service bytransferring data between two digital video recorders which are inservice comprises: transferring media stream from a source digital videorecorder to a destination digital video recorder; and operating saiddestination digital video recorder to play back recorded content;wherein said media stream comprises content itself and associatedservice data; wherein said associated service data comprises a databaseobject and other forms of data that enable said destination digitalvideo recorder to operate independently of said personal TV servicecenter; wherein said database object provides descriptive informationabout said media content; and wherein said source digital video recorderand said destination digital video recorder communicate via directconnection or via a network.

In an embodiment, the method further comprises: encrypting the datatransfer between said source digital video recorder and said destinationdigital video recorder to assure data security; and decrypting saidrecorded content only if it is played back; wherein a local decryptionfacility based on a smart-card is used. In an embodiment, aDiffie-Hellman connection protocol is used to encrypt said data transferusing a one-time key. In an embodiment, the smart card may be pulledfrom said source digital video recorder and installed in saiddestination digital video recorder; and, when said content is viewed insaid destination digital video recorder, all content protection rulesassociated with said content are complied and the owner of saiddestination digital video recorder is properly charged. In anembodiment, said media stream stored in said destination digital videorecorder is removed after said content is reviewed in a view oncescheme. In an embodiment, said destination digital video recorderretains said media stream in said content database in a charge per viewscheme.

In an embodiment, the method further comprises: marking, by saiddestination digital video recorder, said media stream as partial in saiddatabase object when the data transfer is interrupted, in order to avoidre-transfer of the already stored partial media stream when the datatransfer is resumed. In an embodiment, the database object is updated toshow a complete media stream when the entire media stream is stored insaid destination digital video recorder. In an embodiment, the speed oftransferring media stream from said source digital video recorder tosaid destination digital video recorder may be different from the speedof playing back recorded content; and the destination digital videorecorder may start to play back as soon as the first portion of saidcontent is available, in parallel with the ongoing media streamtransfer. In an embodiment, software, graphical elements and programguide may be transferred from said source digital video recorder to saiddestination digital video recorder. In an embodiment, whenever saidsource digital video recorder and said destination digital videorecorder are connected, a set of pre-configured actions take placeautomatically. In an embodiment, the content to be transferred from saidsource digital video recorder to said destination digital video recordermay be selected by the user of said source digital video recorder basedon said descriptive information about said content stored in saiddatabase object.

In an embodiment, the digital video recorder and the destination digitalvideo recorder may be operated with precise synchronization. In anembodiment, a viewer may control trick-play features on a particularmedia stream; wherein each key event is passed to said destinationdigital video recorder; and wherein said destination digital videorecorder performs the same action. In an embodiment, the user of saidsource digital video recorder may indicate a particular program belinked to said destination digital video recorder so that saiddestination digital video recorder schedules recording of said programaccording to the user's indication. In an embodiment, when the user ofsaid source digital video recorder presents a sound or a graphic in saidsource digital video recorder, said sound or graphic may be passed tosaid destination digital video recorder such that said destinationdigital video recorder displays the same sound or graphic.

In an embodiment, the source digital video recorder may be a server in acable head end. In an embodiment, the destination digital video recordermay be a server in a cable head end.

According to an embodiment, a method for data security used intransferring data between two digital video recorders comprises:contacting, by a user who owns said two digital video recorders, saidpersonal TV service center to request an authorization for data transferbetween said two digital video recorders; sending, by said personal TVservice center, to the user an authorization object containing eachdigital video recorder's public key; and exchanging, by said two digitalvideo recorders, signed encrypted certificates based on the storedprivate keys; wherein if both digital video recorders can decrypt andverify the signature of the other, a one-time session key is then usedto encrypt the data during the transfer.

In an embodiment, the personal TV service center maintain a record ofauthorized data transfer operation, including two digital videorecorders' identification information, for later auditing purposes. Inan embodiment, the record is uploaded to said personal TV service centerupon completion of said authorized data transfer operation.

Although the invention is described herein with reference to thepreferred embodiment, one skilled in the art will readily appreciatethat other applications may be substituted for those set forth hereinwithout departing from the spirit and scope of the present invention.

Accordingly, the invention should only be limited by the Claims includedbelow.

What is claimed is:
 1. A method for using personal TV service bytransferring data from a home digital video recorder to a portabledigital video recorder, comprising: transferring media stream from saidhome digital video recorder to said portable digital video recorder; andoperating said portable digital video recorder any where; wherein saidmedia stream is stored in a disk of a battery driven device in saidportable digital video recorder; wherein said media stream comprisescontent itself and associated service data; wherein said associatedservice data comprises a database object and other forms of data thatenable said portable digital video recorder to operate independently ofsaid personal TV service center; and wherein said database objectprovides descriptive information about said content.
 2. The method ofclaim 1, wherein said media stream in said portable digital videorecorder is automatically updated by said home digital video recorderwhenever these two digital video recorders are connected.
 3. The methodof claim 1, wherein the software in said portable digital video recorderis automatically updated by said home digital video recorder wheneverthese two digital video recorders are connected.
 4. The method of claim1, wherein said portable digital video recorder transfers anyoperational information to said home digital video recorder wheneverthese two digital video recorders are connected; and wherein said homedigital video recorder transfers said operational information to saidpersonal TV service center whenever said home digital video recorderaccesses said personal TV service center.
 5. A method for using personalTV service by transferring data between two digital video recorderswhich are in service, comprising: transferring media stream from asource digital video recorder to a destination digital video recorder;and operating said destination digital video recorder to play backrecorded content; wherein said media stream comprises content itself andassociated service data; wherein said associated service data comprisesa database object and other forms of data that enable said destinationdigital video recorder to operate independently of said personal TVservice center; wherein said database object provides descriptiveinformation about said media content; and wherein said source digitalvideo recorder and said destination digital video recorder communicatevia direct connection or via a network.
 6. The method of claim 5 andfurther comprising: encrypting the data transfer between said sourcedigital video recorder and said destination digital video recorder toassure data security; and decrypting said recorded content only if it isplayed back; wherein a local decryption facility based on a smart-cardis used.
 7. The method of claim 6, wherein a Diffie-Hellman connectionprotocol is used to encrypt said data transfer using a one-time key. 8.The method of claim 6, wherein said smart card may be pulled from saidsource digital video recorder and installed in said destination digitalvideo recorder; and wherein when said content is viewed in saiddestination digital video recorder, all content protection rulesassociated with said content are complied and the owner of saiddestination digital video recorder is properly charged.
 9. The method ofclaim 5, wherein said media stream stored in said destination digitalvideo recorder is removed after said content is reviewed in a view oncescheme.
 10. The method of claim 5, wherein said destination digitalvideo recorder retains said media stream in said content database in acharge per view scheme.
 11. The method of claim 5, further comprising:marking, by said destination digital video recorder, said media streamas partial in said database object when the data transfer isinterrupted, in order to avoid re-transfer of the already stored partialmedia stream when the data transfer is resumed.
 12. The method of claim11, wherein said database object is updated to show a complete mediastream when the entire media stream is stored in said destinationdigital video recorder.
 13. The method of claim 5, wherein the speed oftransferring media stream from said source digital video recorder tosaid destination digital video recorder may be different from the speedof playing back recorded content; and wherein said destination digitalvideo recorder may start to play back as soon as the first portion ofsaid content is available, in parallel with the ongoing media streamtransfer.
 14. The method of claim 5, wherein software, graphicalelements and program guide may be transferred from said source digitalvideo recorder to said destination digital video recorder.
 15. Themethod of claim 14, wherein whenever said source digital video recorderand said destination digital video recorder are connected, a set ofpre-configured actions take place automatically.
 16. The method of claim5, wherein said content to be transferred from said source digital videorecorder to said destination digital video recorder may be selected bythe user of said source digital video recorder based on said descriptiveinformation about said content stored in said database object.
 17. Themethod of claim 5, wherein said source digital video recorder and saiddestination digital video recorder may be operated with precisesynchronization.
 18. The method of claim 17, wherein a viewer maycontrol trick-play features on a particular media stream; wherein eachkey event is passed to said destination digital video recorder; andwherein said destination digital video recorder performs the sameaction.
 19. The method of claim 5, wherein the user of said sourcedigital video recorder may indicate a particular program be linked tosaid destination digital video recorder so that said destination digitalvideo recorder schedules recording of said program according to theuser's indication.
 20. The method of claim 5, wherein when the user ofsaid source digital video recorder presents a sound or a graphic in saidsource digital video recorder, said sound or graphic may be passed tosaid destination digital video recorder such that said destinationdigital video recorder displays the same sound or graphic.